记viewer.js图片预览踩的坑 |
您所在的位置:网站首页 › pdf预览 js › 记viewer.js图片预览踩的坑 |
最近在帮同事在旧系统增加功能时又接触到viewer.js,其中踩了些坑,直到跟踪到源码才找到解决方法。 旧系统是N年前的系统,采用jquery+自研发的UI进行的开发,其中引入了一些插件,其中图片预览就是采用的viewer.js。之前上传的文件只有图片,所以预览并没什么问题,新需求中要求可以上传PDF文件,上传后点击pdf图片在新页面打开pdf文件。 思路上传文件成功胡判断文件后缀,普通图片就在dom中添加一个img标签并设置src和data-org属性为图片地址,pdf文件添加个img标签设置data-org属性为图片地址src为一张pdf图片。通过事件委托实现点击pdf图片时获取data-org属性并进行跳转。 问题按思路开发完成后发现pdf图片还可以预览,这个并不是想要的效果。那就需要想办法预览时去除部分图片。 解决思路系统中使用的viewer是jquery的插件,但是当前已经停止维护了,地址是https://github.com/fengyuanchen/viewer 版本是0.5.1
方案1. 首先要去官网查看有没有想过API,于是在找到github找到了filter方法,看这描述妥妥得能解决了:
方案2. 百度搜索相关方案(大部分都是复制粘贴的),没啥借鉴意义,倒是根据名猜到可能有用的属性:show
方案3. 既然show钩子函数中不能区分那只能自己设置个flag了。全局设置flag为true,在pdf图片上绑定click事件,除了在新页面打开pdf外还要设置flag为false。这样在show函数里根据flag的true/false判断要不要显示。但是虽然点击pdf图片不会弹出预览但是在底部缩略图还是有pdf图片的,又放弃了这种方案。 方案4. 只有在底部缩略图中看不到图片才是真理,不能把视线放在图片的点击事件上。既然这样,为何不看下底部缩略图的dom,只要在底部dom中图片未出现也肯定不会加上图片预览效果。
以上只针对https://github.com/fengyuanchen/viewer/releases/tag/v0.5.1
viewer.js 1.7.2实现方式如下
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |